<?php

class AdminModel extends Model
{
    /*
     * 表单验证
     */
    protected $_validate = array(
        array('username', 'require', '用户名不能为空', 1, 'regex', 1),
        array('username', '', '用户已经存在', 1, 'unique', 1),
        array('password', 'require', '用户密码不能为空', 0, 'regex', 1),
        array('email', 'require', '邮箱不能为空', 1, 'regex', 3),
        array('email', 'email', '请填写正确的邮箱'),
        array('email', 'checkEmail', '邮箱已经存在', 1, 'callback', 3),
    );

    /*
     * 自动完成
     */
    protected $_auto = array(
        array('create_time', 'time', 1, 'function'),
        array('update_time', 'time', 2, 'function')
    );

    function checkEmail()
    {
        if (empty($_POST['id'])) {
            if ($this->getByEmail($_POST['email'])) {
                return false;
            } else {
                return true;
            }
        } else {
            //判断邮箱是否已经使用
            if ($this->where("id!={$_POST['id']} and email='{$_POST['email']}'")->find()) {
                return false;
            } else {
                return true;
            }
        }
    }

    // 获取所有用户信息
    public function getAllUser($where = '', $order = 'id  ASC', $limit = '')
    {
        return $this->where($where)->order($order)->limit($limit)->select();
    }

    // 获取单个用户信息
    public function getUser($where = '', $field = '*')
    {
        return $this->field($field)->where($where)->find();
    }

    // 删除用户
    public function delUser($where)
    {
        if ($where) {
            return $this->where($where)->delete();
        } else {
            return false;
        }
    }

    // 更新用户
    public function upUser($data)
    {
        if ($data) {
            return $this->save($data);
        } else {
            return false;
        }
    }

    // 更新用户
    public function check_name($username, $user_id = 0)
    {
        if ($user_id) {   //编辑时查询
            $map['id'] = array('neq', $user_id);
            $map['username'] = array('eq', $username);
        } else {  // 新增是查询
            $map['username'] = array('eq', $username);
        }
        return $this->where($map)->find();
    }
}